home *** CD-ROM | disk | FTP | other *** search
/ Apple II Magazines (DO) / Softdisk Magazette Volume 2, No. 01 (1982-09)(Softdisk)(Side B).zip / Softdisk Magazette Volume 2, No. 01 (1982-09)(Softdisk)(Side B).do / DIVE.BOMBER.bas < prev    next >
BASIC Source File  |  1996-12-24  |  5KB  |  167 lines

  1. 1  HIMEM: 8192
  2. 5  DIM B(40,10)
  3. 6  DIM HX(9),HY(9)
  4. 10  HOME 
  5. 15  GOSUB 6000
  6. 20  PRINT "LOADING SHAPE TABLE"
  7. 25 P = 16384
  8. 26  POKE 232,0: POKE 233,64
  9. 30  READ I$: IF I$ = "END"  THEN 250
  10. 40  FOR A = 1 TO  LEN(I$) -1  STEP 2
  11. 50 P$ =  MID$ (I$,A,2)
  12. 60 H =  ASC( LEFT$(P$,1))
  13. 70 L =  ASC( RIGHT$(P$,1))
  14. 80 H = H -48: IF H >9  THEN H = H -7
  15. 90 L = L -48: IF L >9  THEN L = L -7
  16. 100  POKE P,H *16 +L
  17. 105 P = P +1
  18. 110  NEXT A
  19. 120  GOTO 30
  20. 125  DATA  "030008001F003700"
  21. 130  DATA  "252D2C2D2E35353F3F3F3F373535353525252525250500"
  22. 140  DATA  "25253F3F24242C2D253C3E2627372E2D3536363F3F2E2E00"
  23. 150  DATA  "1225253C3C37372E2E0500"
  24. 160  DATA  "END"
  25. 250 S1 = 0:S2 = 0:M1 = 0:M2 = 0
  26. 255  PRINT "HIT ANY KEY TO BEGIN!"
  27. 256 P =  PEEK( -16384): IF P <128 GOTO 256
  28. 257  POKE  -16368,0
  29. 258  HOME 
  30. 260  HGR 
  31. 270  ROT= 0: SCALE= 1
  32. 275 HT = 0
  33. 280  FOR X = 1 TO 40
  34. 300  READ R: IF R = 0  THEN 405
  35. 310  HCOLOR= 1
  36. 320  FOR DX = (X -1) *6 TO (X -1) *6 +6
  37. 340  HPLOT DX,159 TO DX,159 -R *6
  38. 350  NEXT DX
  39. 355  FOR Y = 1 TO R:B(X,Y) = 5: NEXT Y
  40. 400  HCOLOR= 3
  41. 405  FOR Y = R +1 TO 10
  42. 410  DRAW 3 AT (X -1) *6 +3,159 -(Y -1) *6 -3
  43. 415 B(X,Y) = 1
  44. 500  NEXT Y
  45. 502 HT = HT +10 -R
  46. 505  NEXT X
  47. 520  DATA  9,8,7,5,4,3,2,0,0,1,2,3,4,3,3,4,5,6,5,4
  48. 530  DATA  4,5,6,5,4,3,3,4,3,2,1,0,0,2,3,4,5,7,8,9
  49. 1000  HOME 
  50. 1003  VTAB 22: PRINT  TAB( 33);: INVERSE : PRINT "DIVE";: NORMAL : PRINT ""
  51. 1004  VTAB 23: PRINT  TAB( 32);: INVERSE : PRINT "BOMBER";: NORMAL : PRINT ""
  52. 1005 SW = 1
  53. 1010  IF SW = 1  THEN SW =  -1:F = 230:T = 10: GOTO 1030
  54. 1020 SW = 1:F = 10:T = 230
  55. 1030  IF M1 = 5  AND SW = 1  THEN 1010
  56. 1040  IF M2 = 5  AND SW =  -1  THEN 1010
  57. 1200  VTAB 22: IF SW = 1  THEN  INVERSE 
  58. 1210  PRINT "PLAYER #1";: NORMAL : PRINT  TAB( 11);"SCORE:";S1; TAB( 21);"MISSES:";M1
  59. 1230  VTAB (23): IF SW =  -1  THEN  INVERSE 
  60. 1240  PRINT "PLAYER #2";: NORMAL : PRINT  TAB( 11);"SCORE:";S2; TAB( 21);"MISSES:";M2
  61. 1300  FOR CD = 5 TO 1  STEP  -1
  62. 1310  VTAB (21): PRINT "COUNTDOWN:";CD
  63. 1315  POKE  -16368,0
  64. 1320  FOR P = 1 TO 300: NEXT P
  65. 1330  NEXT CD
  66. 1340  VTAB (21): PRINT "
  67. 1527  FOR IN = F TO T  STEP SW *3
  68. 1530  HCOLOR= 3: DRAW 1 AT IN -4,10
  69. 1535  DRAW 2 AT IN,25
  70. 1540 P =  PEEK( -16384): IF P >128  THEN  POKE  -16368,0: GOTO 2000
  71. 1550  HCOLOR= 0
  72. 1560  DRAW 1 AT IN -4,10
  73. 1570  DRAW 2 AT IN,25
  74. 1600  NEXT IN
  75. 1700  GOTO 5000
  76. 2000  HCOLOR= 0: DRAW 1 AT IN -4,10
  77. 2002  DRAW 2 AT IN,25
  78. 2003 X = IN
  79. 2005  FOR Y = 25 TO 99  STEP 2
  80. 2010  HCOLOR= 0: DRAW 2 AT X,Y -2
  81. 2020 X = X +SW *1.75
  82. 2030  IF X < = 0  THEN X = 240: GOTO 2050
  83. 2040  IF X > = 240  THEN X = 0
  84. 2050  HCOLOR= 3: DRAW 2 AT X,Y
  85. 2060  NEXT Y
  86. 2070  HCOLOR= 0: DRAW 2 AT X,99
  87. 2080  FOR Y = 99 TO 158  STEP 2
  88. 3010  HCOLOR= 0: DRAW 2 AT X,Y -2
  89. 3020  IF B( INT(X/6) +1, INT((159 -Y)/6)) >0  THEN 4000
  90. 3030 X = X +SW *1.75
  91. 3040  HCOLOR= 3: DRAW 2 AT X,Y
  92. 3050  NEXT Y
  93. 3060  HCOLOR= 0: DRAW 2 AT X,157
  94. 3070  GOTO 5000
  95. 4000 RX =  INT(X/6) +1:RY =  INT((159 -Y)/6)
  96. 4006  IF B(RX,RY) = 5  THEN 5000
  97. 4010  FOR X = 1 TO 9:HX(X) = 0:HY(X) = 0: NEXT X
  98. 4015 HP = 1
  99. 4020  FOR Y =  -1 TO 1: FOR X =  -1 TO 1
  100. 4025  IF RX +X <1  OR RX +X >40  OR RY +Y <1  OR RY +Y >10  THEN 4100
  101. 4030  IF B(RX +X,RY +Y) < >1  THEN 4100
  102. 4040 HX(HP) = RX +X:HY(HP) = RY +Y
  103. 4050 B(RX +X,RY +Y) = 0
  104. 4060  IF SW = 1  THEN S1 = S1 +1: GOTO 4070
  105. 4065 S2 = S2 +1
  106. 4070 HP = HP +1
  107. 4100  NEXT X: NEXT Y
  108. 4110 HP = HP -1
  109. 4200  FOR FL = 1 TO 10
  110. 4210  HCOLOR= 3
  111. 4220  FOR FO = 1 TO HP
  112. 4230  DRAW 3 AT HX(FO) *6 -3,162 -HY(FO) *6
  113. 4240  NEXT FO
  114. 4250  HCOLOR= 0
  115. 4260  FOR FO = 1 TO HP
  116. 4270  DRAW 3 AT HX(FO) *6 -3,162 -HY(FO) *6
  117. 4280  NEXT FO
  118. 4290  NEXT FL
  119. 4500 FS = RX -1:TS = RX +1
  120. 4510  IF FS <1  THEN FS = 1
  121. 4520  IF TS >40  THEN TS = 40
  122. 4550  FOR S = FS TO TS
  123. 4560  FOR Y = 2 TO 10
  124. 4570  IF B(S,Y) < >1  THEN  GOTO 4700
  125. 4580  FOR C = Y -1 TO 1  STEP  -1
  126. 4590  IF B(S,C) < >0  THEN 4615
  127. 4600  NEXT C
  128. 4610 C = 0
  129. 4615  IF C +1 = Y  THEN 4700
  130. 4620 B(S,C +1) = B(S,Y):B(S,Y) = 0
  131. 4630  HCOLOR= 0: DRAW 3 AT S *6 -3,162 -Y *6
  132. 4640  HCOLOR= 3: DRAW 3 AT S *6 -3,162 -(C +1) *6
  133. 4700  NEXT Y
  134. 4800  NEXT S
  135. 4810  IF (S1 +S2)/HT =  INT((S1 +S2)/HT)  THEN 5040
  136. 4900  GOTO 1010
  137. 5000  IF SW = 1  THEN M1 = M1 +1
  138. 5001  IF SW =  -1  THEN M2 = M2 +1
  139. 5005  IF M1 +M2 <10  THEN 1010
  140. 5010  VTAB (21): PRINT "GAME OVER"
  141. 5015 :S1 = 0:S2 = 0:M1 = 0:M2 = 0
  142. 5020 P =  PEEK( -16384): IF P <128  THEN 5020
  143. 5030  POKE  -16368,0
  144. 5040  RESTORE 
  145. 5050  READ I$: IF I$ = "END"  THEN 270
  146. 5060  GOTO 5050
  147. 6000  PRINT "DIVE BOMBER -- WRITTEN BY RICHARD TODD"
  148. 6005  PRINT : PRINT "INSTRUCTIONS:"
  149. 6020  PRINT "YOU AND YOUR OPPONENT ARE BOTH PRIVATES"
  150. 6030  PRINT "IN THE U.S.ARMY. YOUR MISSIONS ARE THE";
  151. 6040  PRINT "  SAME. TO CLEAR OUT A MOUNTAIN PASS TO "
  152. 6050  PRINT "ALLOW YOUR TROOPS TO GET THROUGH AND"
  153. 6060  PRINT "DEFEAT THE ENEMY. YOU ALTERNATELY DROP"
  154. 6070  PRINT "BOMBS IN AN ATTEMPT TO CLEAR OUT AS MANY";
  155. 6080  PRINT "ROCKS AS POSSIBLE. AS YOUR BOMB FLOATS"
  156. 6090  PRINT "ACROSS THE SCREEN, HIT ANY KEY TO DROP"
  157. 6100  PRINT "IT. YOU MAY HIT A KEY DURING THE COUNT-";
  158. 6110  PRINT "DOWN TO DEPLOY THE BOMB IMMEDIATELY."
  159. 6120  PRINT "EACH PLAYER GETS TO MISS 5 TIMES"
  160. 6130  PRINT "YOU MISS IF EITHER YOU FAIL TO DESTROY"
  161. 6140  PRINT "ANY ROCKS OR YOU DO NOT DROP YOUR BOMB"
  162. 6150  PRINT "AT ALL."
  163. 6160  PRINT "ANOTHER NOTE: THE BOMB 'WRAPS' AROUND"
  164. 6170  PRINT "THE SCREEN, TO ALLOW YOU TO HIT ROCKS"
  165. 6180  PRINT "THAT WOULD OTHERWISE BE IMPOSSIBLE TO"
  166. 6190  PRINT "HIT."
  167. 6200  RETURN